package chapter9;

/**
 * 子类继承了泛型父类，并且指定了泛型的具体类型，则父类中所有用到泛型的地方
 * 都会替换为子类指定的类型，如果子类重写父类的方法，类型必须和子类声明的泛型
 * 类型一致
 */
public class A1 extends Apple<String> {
    //正确的方式，子类泛型实参使用String，则重写父类的方法返回String
    public String getInfo() {
        return "子类" + super.getInfo();
    }

    //错误，子类指定了泛型的实际类型为String，重写父类的getInfo返回值，因为父类该方法返回T，所以
    //子类中的返回值必须是子类使用时传入的实际类型，即：String
    /*public Object getInfo() {
        return "子类";
    }*/

}
